home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO044.dsk / REVISE.DM.bas < prev   
BASIC Source File  |  2012-02-16  |  3KB  |  56 lines

  1. 10  REM ===================
  2. 20  REM  Revise DOS.MASTER
  3. 30  REM -------------------
  4. 40  REM 
  5. 50  PRINT  CHR$(4)"PR#3"
  6. 60  PRINT  CHR$(12);
  7. 70  PRINT  TAB( 24)"Change/examine DOS MASTER slots"
  8. 80 MO$ =  CHR$(27) + CHR$(15):MF$ =  CHR$(24) + CHR$(14)
  9. 90  PRINT  TAB( 24)MO$"LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL"MF$
  10. 100  PRINT MO$;: FOR I = 1 TO 11: PRINT "SSSSSSS";: NEXT I: PRINT MF$
  11. 110  PRINT "This program allows you to change the slot designations in the DOS.3.3 file."
  12. 120  PRINT "It is intended for use when you change the slot of a device containing a"
  13. 130  PRINT "DOS MASTER partition."
  14. 140  PRINT MO$;: FOR I = 1 TO 11: PRINT "SSSSSSS";: NEXT I: PRINT MF$
  15. 150  PRINT  CHR$(4)"BLOAD RDLINE,TCMD,A$4000": CALL 4 *4096
  16. 160  LOMEM: 6 *4096
  17. 170  ONERR  GOTO 560
  18. 180  PRINT  CHR$(4)"BLOAD DOS.3.3,TSYS,A$2000"
  19. 190  POKE 216,0
  20. 200 SLOTS = 2 *4096 +4 *16 +6
  21. 210 V0 = SLOTS +4:SIZE = V0 +16:VSIZ = SIZE +8:VT = VSIZE +8:ADRS = VT +8
  22. 220  VTAB 8: PRINT  CHR$(11): PRINT "Presently assigned devices:": PRINT 
  23. 230  FOR D = 0 TO 3
  24. 240 S =  PEEK(SLOTS +D): IF   NOT S  THEN 290
  25. 250  PRINT "Slot ";S/16;", Drive 1 has ";:DR = 0: GOSUB 530
  26. 260  PRINT NUM;" volumes of ";SZ *2;" sectors."
  27. 270  PRINT "Slot ";S/16;", Drive 2 has ";:DR = 2: GOSUB 530
  28. 280  PRINT NUM;" volumes of ";SZ *2;" sectors.": PRINT 
  29. 290  NEXT D
  30. 300  PRINT "Change what slot? (Type <ESC> when done) ";
  31. 310  PRINT  CHR$(4)"RDLINE #":S$
  32. 320  GET A$: IF A$ =  CHR$(27)  THEN 440
  33. 330 S =  VAL(S$): IF S <1  OR S >7  THEN  PRINT  CHR$(8);: GOTO 310
  34. 340  FOR D = 0 TO 3: IF S =  PEEK(SLOTS +D)/16  THEN 360
  35. 350  NEXT D: PRINT  CHR$(8);: GOTO 310
  36. 360  PRINT " to slot: ";
  37. 370  PRINT  CHR$(4)"RDLINE #":T$
  38. 380  GET A$: IF A$ =  CHR$(27)  THEN 440
  39. 390 T =  VAL(T$): IF T <1  OR T >7  OR T = S  THEN  PRINT  CHR$(8);: GOTO 370
  40. 400  PRINT : IF T$ = S$  THEN 220
  41. 410  FOR D = 0 TO 3:S =  PEEK(SLOTS +D)/16: IF   NOT S  THEN 430
  42. 420  IF S =  VAL(S$)  THEN  POKE SLOTS +D,T *16:S$ = "0":CHG = 1
  43. 430  NEXT D: GOTO 220
  44. 440  IF   NOT CHG  THEN 520
  45. 450  PRINT : PRINT : PRINT "Ok to write new DOS.3.3 file? (Y/N) ";
  46. 460  PRINT  CHR$(4)"RDLINE A":S$
  47. 470  GET A$: IF A$ < > CHR$(13)  THEN  PRINT  CHR$(8);: GOTO 460
  48. 480  IF S$ = "N"  THEN 520
  49. 490  IF S$ < >"Y"  THEN  PRINT  CHR$(8);: GOTO 460
  50. 500  PRINT  CHR$(4)"UNLOCK DOS.3.3"
  51. 510  PRINT  CHR$(4)"BSAVE DOS.3.3,TSYS,A$2000,L$2700"
  52. 520  TEXT : VTAB 22: END 
  53. 530 ST =  PEEK(V0 +4 *D +DR) +256 * PEEK(V0 +4 *D +DR +1):SZ =  PEEK(VSIZ +D +D) +256 * PEEK(VSIZ +D +D +1)
  54. 540 V =  PEEK(SIZE +D +D) +256 * PEEK(SIZE +D +D +1): IF ST >V  THEN ST = ST -16 *4096
  55. 550 NUM = (V -ST)/SZ -1: RETURN 
  56. 560  PRINT : PRINT "Cannot find the file DOS.3.3.  Aborting."